{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from xgboost import XGBRFRegressor as XGBR\n",
    "from numpy import *\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression as LinearRegression\n",
    "from sklearn.model_selection import KFold,cross_val_score as CVS,train_test_split as TTS\n",
    "from sklearn.metrics import mean_squared_error as MSE\n",
    "wine = pd.read_excel(\"RF_lgb_Relation.xlsx\",header=0)\n",
    "wine0 = pd.read_csv(\"after_process_database.csv\",header=0)\n",
    "feature20 = pd.read_csv(\"final_features.csv\",header=0)\n",
    "feature_20=feature20.loc[:,'name'].values\n",
    "after_feature=wine.loc[:49,'Rela删除后的RF'].values\n",
    "index50 = wine0.loc[:,after_feature].values\n",
    "index20 = wine0.loc[:,feature_20].values\n",
    "yList = wine0.pIC50.values\n",
    "index20"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "array([[28.27793195,  0.46912557, -0.12645316, ...,  1.35723722,\n",
       "         0.73317565, -1.3313031 ],\n",
       "       [31.07674804,  0.44912557, -0.12645324, ...,  1.36403994,\n",
       "         0.73317565, -1.3786282 ],\n",
       "       [30.90106359,  0.48071295, -0.14312582, ...,  1.20091777,\n",
       "         0.83955604, -1.60835379],\n",
       "       ...,\n",
       "       [44.46643496,  0.50975105,  0.05139418, ...,  0.83563916,\n",
       "         0.95805898, -5.99302785],\n",
       "       [32.17931565,  0.52926898,  0.06039729, ...,  0.87127637,\n",
       "         0.93249605, -5.77914217],\n",
       "       [44.46643496,  0.5052159 ,  0.0600449 , ...,  0.89578922,\n",
       "         0.95805898, -5.97813907]])"
      ]
     },
     "metadata": {},
     "execution_count": 13
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "source": [
    "X_train,X_test,y_train,y_test = TTS(index20,yList,test_size=0.3)#20维度数据\n",
    "X_train.shape"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "(1381, 20)"
      ]
     },
     "metadata": {},
     "execution_count": 14
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "source": [
    "from sklearn.model_selection import learning_curve\n",
    "def plot(estimator,title,x,y,ax=None,ylim = None,cv=None,):\n",
    "    train_sizes,train_scores,test_scores = learning_curve(estimator,x,y,shuffle=True,cv=cv)\n",
    "    if ax == None:\n",
    "        ax = plt.gca()\n",
    "    else :\n",
    "        ax = plt.figure()\n",
    "    ax.set_title(title)\n",
    "    if ylim is not None:\n",
    "        ax.set_ylim(*ylim)\n",
    "    ax.set_xlabel('training example')\n",
    "    ax.set_ylabel('Score')\n",
    "    ax.grid()\n",
    "    ax.plot(train_sizes,np.mean(train_scores,axis=1),'o-',color = 'r',label = 'Training score')\n",
    "    ax.plot(train_sizes,np.mean(test_scores,axis=1),'o-',color = 'r',label = 'Testing score')\n",
    "    ax.legend(loc = 'best')\n",
    "    return ax\n",
    "cv = KFold(n_splits=5,shuffle=True)\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "source": [
    "plot(XGBR(n_estimator=110),'XGB',X_train,y_train)\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[23:03:55] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:08:05] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:13:03] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:18:14] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:23:33] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:27:34] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:30:13] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:32:14] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:33:40] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:35:09] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:36:39] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:37:48] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:39:11] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:40:38] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:42:08] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:43:40] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:44:52] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:46:16] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:47:44] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:49:15] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:50:43] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:51:54] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:53:22] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:54:51] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:56:20] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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0aFDh1LH9OvXb+++7Oxs1q9fz8qVK+nateve+/RHjRrF5MmTy73/wIEDmTRpEvn5+YwcOZJu3brx1ltvcc4555CZmQnAAQccAMDChQuZNm0aABdccAETJkwoV7bCwkIWLFjAOeecs/e5HXX0t0yORFATqan+ZD9iBOzeDfPm+aQwfbpfGjeGYcN8UjjzTGjbNt4Ri8TFjttvp2llnas6d/bVQWV16gR5eXUaS/jQ0P/zP//D0KFDmT59OuvWratwtNBmzZrtXU9JSYlYB1/2mOIatCOOHj2a/v3788Ybb3Dqqafy2GOPVfu14UJl27NnDxkZGSxdurRW71OZht9GsC8aN4YTToAHH4SNG2HhQrjuOlizxrclHHywb1u4997I/+BFkllF7XOTJkX1YwsKCmjfvj0Af/vb3+r8/bt3787atWtZt24dAM8991zE49auXUvXrl0ZP348Z555Jh9++CEnnHACL7zwAlu2bAHYWzU0aNAgpk6dCkBubi7HHntsuffbf//96dKlCy+88ALgexF/8MEHdVImJYLqatQIBgyA22+H1avhww/hj3+EggJ/11Hnzv4upP/7P6jnY5GIxMSYMb69rVMnMPOPkydHvSPnhAkTuPHGG+nTp09U7rRp3rw5Dz/88N5G25YtW5Kenl7uuOeff55evXqRnZ3Nxx9/zIUXXkjPnj2ZOHEixx9/PL179+a6664D4IEHHuDJJ58kKyuLf/zjH9x3330RPzs3N5e//vWv9O7dm549e/LKK6/USZnMJdh99H379nX1bmKaNWt8tdG0ab6BDODww1mfk0Ona6+Fo47y/xGSQCJP3FFbyVTmFStWcMQRRwD1f9ydaAiVubCwkLS0NJxzXHnllXTr1o1rr7023uHtFf49hZjZEudc30jH64qgLhx6KFx/va86ys/3VUnt2tHx2WfVV0GkAXr88cfJzs6mZ8+eFBQUcOmll8Y7pH2iRFDX2reHK6+EOXNYMG2a76uQlQUPP6y+CiINRKgj2/Lly8nNzaVFgt9erkQQRbvS030/hddeg2++galTYcgQ31dh+HA48EC44AJfrVR2PCQRkRhRIoiVli3h3HPhuedg82afHEaOhBkz/GNmpn98+mn4/vt4RysiSUT9COKhqr4KTZr421bVV0FEYkBXBPEWqa/Cr3+tvgoiEjNKBPVJqK/CHXf4vgof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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "source": [
    "# reg= XGBR(n_estimator = 100).fit(X_train,y_train)#100ge 树"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "source": [
    "# reg.predict(X_test)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "source": [
    "# reg.score(X_test,y_test)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "source": [
    "# MSE(y_test,reg.predict(X_test))"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "source": [
    "# reg.feature_importances_\n",
    "reg.plot_tree(bst, num_trees=2)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "source": [
    "#交叉验证，导入没有训练的模型\n",
    "reg1= XGBR(n_estimator = 150)\n",
    "# CVS(reg1,X_train,y_train,cv=5)#只在训练集上，更严谨\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "source": [
    "MSE=CVS(reg1,index50,yList,cv=5,scoring='neg_mean_squared_error')#只在训练集上，更严谨\n"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "[23:57:52] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[23:59:40] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[00:01:31] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[00:03:18] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n",
      "[00:05:08] WARNING: ../src/learner.cc:573: \n",
      "Parameters: { \"n_estimator\" } might not be used.\n",
      "\n",
      "  This may not be accurate due to some parameters are only used in language bindings but\n",
      "  passed down to XGBoost core.  Or some parameters are not used but slip through this\n",
      "  verification. Please open an issue if you find above cases.\n",
      "\n",
      "\n"
     ]
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python",
   "version": "3.7.10",
   "mimetype": "text/x-python",
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "pygments_lexer": "ipython3",
   "nbconvert_exporter": "python",
   "file_extension": ".py"
  },
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.7.10 64-bit ('deeplearning': conda)"
  },
  "interpreter": {
   "hash": "a2441be928683876ab9582b799059e1f9f764e7f9dd2044f4d30ad5ffc1df7fc"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}